//package _rxjava2;
//
//import io.reactivex.schedulers.Schedulers;
//import org.reactivestreams.Subscriber;
//import org.reactivestreams.Subscription;
//
///**
// * @author huangya
// * @date 2022/7/8
// */
//public class Test {
//
//    public static void main(String[] args) {
//        Flowable
//
//                .create(new FlowableOnSubscribe() {
//
//                    @Override
//
//                    public void subscribe(FlowableEmitter emitter) throws Exception {
//
//                        Log.d(TAG, "First requested = " + emitter.requested());
//
//                        boolean flag;
//
//                        for (int i = 0; ; i++) {
//
//                            flag = false;
//
//                            while (emitter.requested() == 0) {
//
//                                if (!flag) {
//
//                                    Log.d(TAG, "can't emit value !");
//
//                                    flag = true;
//
//                                }
//
//                            }
//
//                            emitter.onNext(i);
//
//                            Log.d(TAG, "emit " + i + " , requested = " + emitter.requested());
//
//                        }
//
//                    }
//
//                }, BackpressureStrategy.ERROR)
//
//                .subscribeOn(Schedulers.io())
//
//                .observeOn(AndroidSchedulers.mainThread())
//
//                .subscribe(new Subscriber() {
//
//                    @Override
//
//                    public void onSubscribe(Subscription s) {
//                        System.out.println("onSubscribe");
//                        mSubscription = s;
//                        mSubscription.request(3);
//                    }
//
//                    @Override
//                    public void onNext(Integer integer) {
//                        System.out.println("onNext: " + integer);
//                    }
//
//                    @Override
//                    public void onError(Throwable t) {
//                        System.out.println("onError: "+ t);
//                    }
//
//                    @Override
//                    public void onComplete() {
//                        System.out.println("onComplete");
//                    }
//
//                });
//    }
//}
